An efficient and readily available test automation infrastructure is of primary importance to a software development enterprise. It can make the difference between shipping on time or slipping, as well as increasing confidence in the quality of a product.
As testing requirements for a product increase, demand for testing resources increases as well. It is usually difficult to dedicate enough computers solely for testing, so there is often a need to use computers for other purposes in addition to testing.
It can be difficult to manage computers used part-time for testing. Ensuring computers are available when needed, both for the test and for other uses, is time-consuming and can be error-prone. In such cases, it is often necessary to back up the existing data, re-image the computer to prepare for the test, and then revert to the previous state. This overhead and the possibility of errors causing data loss or testing-time loss prevent this from being an efficient use of the available resources.